/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pl.tewi.annotations.processors;

import java.util.ArrayList;
import pl.tewi.contexts.ApplicationServerContext;
import pl.tewi.exceptions.AnnotationProcessingException;
import pl.tewi.exceptions.GeneralFrameworkException;

/**
 * Klasa typu Singleton przetwarzająca adnotacje na klasach JUnit, patrz pakiet 
 * {@link pl.tewi.jeeunit.annotations}
 * @author Marcin Kwapisz
 */
public final class FrameworkAnnotationProcessor extends AbstractAnnotationProcessor {

    private static final AnnotationProcessor ANNOTATION_PROCESSOR = new FrameworkAnnotationProcessor();

    /**
     * Pobiera instancję komponentu przetwarzajacego adnotacje
     * @return instancja komponentu
     */
    public static AnnotationProcessor getInstance() {
        return ANNOTATION_PROCESSOR;
    }

    /**
     * Konstruktor tworzący łańcuch komponentów przetwarzająceych adnotacje
     */
    private FrameworkAnnotationProcessor() {
        procesors.add(new ApplicationServerAnnotationProcessor());
        procesors.add(new AppResourceAnnotationProcessor());
        procesors.add(new ApplicationsAnnotationProcessor());
    }
}
